function iscatterexplorer, data2d, data3d, ptr_selected_points, _extra=_extra
	nparams = n_params()
	if(nparams GT 0) then begin
		oparmset = obj_new('IDLitParameterSet')
		if (n_elements(data3d) gt 0) then begin
			oparmset->add, obj_new('IDLitDataIDLArray2D', data2d, NAME='VERTICES'), parameter_name='VERTICES'
		endif
	endif

	itregister, 'Scatter Plot Explorer', 'iscatterexplorer'

	identifier = IDLitSys_CreateTool('Scatter Plot Explorer', NAME = 'Scatter Plot Explorer', VISUALIZATION_TYPE = ['PLOT'], $
			INITIAL_DATA = oparmset, _EXTRA = _extra, TITLE = 'Scatter Plot Explorer', LINESTYLE=6, SYM_INDEX=3)

	tid = itGetCurrent(tool=otool)
	omanip = otool->getByIdentifier("MANIPULATORS/BOX SELECTOR")
	omanip->SetProperty, UVALUE={pdata3d:ptr_new(data3d), pptr_return_here:ptr_new(ptr_selected_points)}
	;omanip->SetProperty, UVALUE=ptr_new(data3d)

	return, omanip
end